package online.flowerinsnow.minecraft.bukkit.floweress.api.manager

import org.bukkit.entity.Player

/**
 * 玩家可见性管理器
 */
interface IVisibleManager {
    /**
     * 获取玩家是否是可见的
     *
     * @param player 玩家
     * @return 玩家是否是可见的
     */
    fun getPlayerVisible(player : Player) : Boolean

    /**
     * 设置玩家可见性
     *
     * @param player 玩家
     * @param visible 可见性
     * @return 是否有变更
     */
    fun setPlayerVisible(player : Player, visible : Boolean) : Boolean

    /**
     * 设置玩家不可见
     *
     * @param player 玩家
     * @return 是否有变更
     */
    fun hidePlayer(player : Player) : Boolean

    /**
     * 设置玩家可见
     *
     * @param player 玩家
     * @return 是否有变更
     */
    fun showPlayer(player : Player) : Boolean

    /**
     * 获取隐身的玩家列表
     *
     * @return 隐身的玩家列表
     */
    fun getInvisiblePlayers() : Set<Player>
}